Enterprise computing often involves sharing of documents between authors, creators, editors, reviewers, and other stakeholders. Upon the advent of email communications (e.g., with users having unique addresses) and computer-readable documents (e.g., text files, presentations, spreadsheets, mixed text and graphics documents, etc.), attachments to email became the norm for disseminating information both internal to and external to an organization. Such methods of disseminating information can precipitate the situation where there are many copies of the same document(s), and some agreement had to be reached among the collaborators for keeping track of which copy should be considered the source or “true” copy. This need, and improvements in various technologies gave way to a sharing or collaboration model where there exists a single true source copy of a document, and all collaborators agree on a check-in/check-out procedure. Over time, the check-in/check-out procedure became semi-automated or fully-automated, and collaborators merely agreed to collaborate within the bounds of the semi-automated or fully-automated environment. Such a collaboration model, where collaborators merely agree to collaborate within the bounds of the semi-automated or fully-automated environment (e.g., using a shared document repository and a set of access rules), can be configured to handle a wide range of objects (e.g., text files, presentations, spreadsheets, mixed text and graphics documents, etc.) and containers (e.g., folders, directories, etc.).
The concept of a hierarchy of containers that can contain objects and/or other containers (and so on), coupled with the notion of inheritance of access permissions when traversing down a given hierarchy (e.g., permissions “waterfall”), simplifies the codification of access rules. For example, if a creator collaborator produces a folder container that is tagged as being accessible to other collaborators in some group, and the creator collaborator places objects into that folder, then by applying the concept of inheritance, the objects in the folder inherit the accessibility of the parent folder. Additional containers (e.g., child folders) can be created within a parent folder, and so on to form a regime of hierarchical access.
Many cloud-based services and platforms rely on such access permissions to deliver various capabilities. Specifically, cloud-based content management services and platforms have impacted the way personal and corporate electronically stored information objects (e.g., files, images, videos, etc.) are stored, and has also impacted the way such personal and corporate content is shared and managed. One benefit of using such cloud-based systems is the ability to securely share content among trusted collaborators on a variety of user devices such as mobile phones, tablets, laptop computers, desktop computers, and/or other devices. Certain cloud-based shared content management platforms might further provide document creation applications for such user devices so as to facilitate use models where collaborators create and/or edit documents within the cloud-based platform for real-time sharing.
Unfortunately, the collaboration capability desired by users of today's cloud-based shared content management services and platforms involves collaborator and/or content relationships that are not hierarchical in nature, thus the legacy hierarchical access techniques are deficient. Furthermore, a given collaborator (e.g., inviter) may want to quickly view the users that can potentially collaborate on certain content (e.g., based on associated permission sets) and may want to invite any such user (e.g., invitee) to collaborate on the content. As the number of users and/or content objects and/or permission sets increase in a cloud-based shared content environment, legacy approaches to content collaboration (e.g., for determining the extent of collaborators over a particular document) are limited at least in their ability to respond to such queries for available collaborators in a time period and to an accuracy level that is acceptable to the users.
What is needed is a technique or techniques to improve over legacy approaches.